// # 模拟权限接口
// 模拟登录接口
// export const login = (username) => {
//   return new Promise((resolve) => {
//     setTimeout(() => {
//       resolve({
//         username,
//         // 模拟权限码 (根据角色返回不同菜单)
//         permissions:
//           username === 'admin'
//             ? ['*'] // 管理员拥有所有权限
//             : ['dashboard', 'sub1'],
//       });
//     }, 500);
//   });
// };

// // 模拟获取菜单接口
// export const getMenu = (permissions) => {
//   const fullMenu = [
//     {
//       path: '/dashboard',
//       name: 'Dashboard',
//       meta: { title: '仪表盘', icon: 'el-icon-menu' },
//     },
//     {
//       path: '/system',
//       name: 'System',
//       meta: { title: '系统管理', icon: 'el-icon-setting' },
//       children: [
//         {
//           path: 'user',
//           name: 'User',
//           meta: { title: '用户管理', permission: 'system:user' },
//         },
//         {
//           path: 'role',
//           name: 'Role',
//           meta: { title: '角色管理', permission: 'system:role' },
//         },
//       ],
//     },
//   ];

//   return new Promise((resolve) => {
//     setTimeout(() => {
//       resolve(
//         permissions.includes('*')
//           ? fullMenu
//           : filterAsyncRoutes(fullMenu, permissions)
//       );
//     }, 500);
//   });
// };

// // 递归过滤菜单
// const filterAsyncRoutes = (routes, permissions) => {
//   return routes.filter((route) => {
//     if (route.children) {
//       route.children = filterAsyncRoutes(route.children, permissions);
//     }
//     return (
//       !route.meta?.permission || permissions.includes(route.meta.permission)
//     );
//   });
// };

// 模拟权限接口
const menuData = [
  // {
  //   path: '/dashboard',
  //   name: 'Dashboard',
  //   meta: { title: '控制台', icon: 'Menu', permission: 'dashboard' },
  // },
  // {
  //   path: '/system',
  //   name: 'System',
  //   meta: { title: '系统管理', icon: 'Setting' },
  //   children: [
  //     {
  //       path: 'user',
  //       name: 'User',
  //       meta: { title: '用户管理', permission: 'system:user' },
  //     },
  //     {
  //       path: 'role',
  //       name: 'Role',
  //       meta: { title: '角色管理', permission: 'system:role' },
  //     },
  //   ],
  // },
  // {
  //   path: '/micro',
  //   name: 'Micro',
  //   meta: { title: '微应用', icon: 'Cpu' },
  //   children: [
  //     {
  //       path: 'react-app',
  //       name: 'ReactApp',
  //       meta: { title: 'React应用', permission: 'micro:react' },
  //     },
  //     {
  //       path: 'vue-app',
  //       name: 'VueApp',
  //       meta: { title: 'Vue应用', permission: 'micro:vue' },
  //     },
  //   ],
  // },
  {
    path: '/welcome',
    name: 'Welcome',
    meta: { title: '首页', icon: 'HomeOutlined' }
  },
  {
    path: '/sub',
    meta: { title: '子应用管理', icon: 'AppstoreOutlined' },
    children: [
      { 
        path: 'vue3-app', 
        meta: { title: 'Vue3应用', microApp: 'vue3-app' }
      },
      { 
        path: 'vue2-app',
        meta: { title: 'Vue2应用', microApp: 'vue2-app' }
      },
      {
        path: 'arco-app',
        meta: { title: 'Arco应用', microApp: 'arco-app' }
      }
    ]
  }
];

export const login = (username) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve({
        username,
        //模拟权限码 (根据角色返回不同菜单)
        permissions:
          username === 'admin'
            ? ['*'] // 管理员拥有所有权限
            : ['dashboard', 'system:user', 'micro:vue'],
      });
    }, 500);
  });
};

export const getMenu = (permissions) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(filterRoutes(menuData, permissions));
    }, 500);
  });
};

function filterRoutes(routes, permissions) {
  return routes.filter((route) => {
    if (route.children) {
      route.children = filterRoutes(route.children, permissions);
    }
    return (
      !route.meta?.permission ||
      permissions.includes('*') ||
      permissions.includes(route.meta.permission)
    );
  });
}
